// 加载env
const fy = require('fastify')
require('env2')('./.env')

// 加载配置
const config = require('./config')

// 获取日志配置
const { opt } = require('fastify-logger')(config.log);
opt.stream = null;

// 实例化
const fastify = fy({
  logger: opt
})


// 插件
// 连接数据库
fastify.register(require('./database'), {
  url: config.database.url,
  db_name: config.database.db_name,
  useUnifiedTopology: true
})

// 路由
// fastify.register(require('./route/get'))
fastify.register(require('./route/post'))

// 注册中间件 auth 验证
fastify.register(require('./middleware/auth'))

// 初始化
async function init() {
  try {
    // 启动服务！
    await fastify.listen(config.app.port)
  } catch (err) {
    fastify.log.error(err)
    process.exit(1)
  }
}

init()